XQuery/HelloWorld
Script XML
[modifier | modifier le wikicode]xquery version "3.0";
let $message := 'Hello World!'
return
<results>
<message>{$message}</message>
</results>
Pour exécuter ce script sur le serveur installé en introduction, le coller :
- Sur eXist, dans http://localhost:8080/exist/apps/eXide/index.html, et cliquer sur "Eval".
- Sur baseX, dans la fenêtre Editor, puis cliquer sur la flèche verte (play).
Sinon il est possible de le lancer sur un serveur distant : http://www.cems.uwe.ac.uk/xmlwiki/helloWorld.xq.
Résultat attendu
[modifier | modifier le wikicode]<results>
<message>Hello World!</message>
</results>
Discussion
[modifier | modifier le wikicode]Le programme crée une variable temporaire appelée $message
, et lui assigne la valeur chaine de caractère Hello World!
. Le résultat représente la valeur de cette variable dans un XML de résultat.
Remarques
[modifier | modifier le wikicode]- Si on oublie les accolades autour de la variable, on obtient son nom au lieu de sa valeur : http://www.cems.uwe.ac.uk/xmlwiki/helloWorld_1.xq.
- Si on omet les balises de résultat, elles ne figurent pas dans la réponse du serveur : http://www.cems.uwe.ac.uk/xmlwiki/helloWorld_2.xq.
Texte brut
[modifier | modifier le wikicode]XQuery peut renvoyer du texte brut grâce aux options de sérialisation qui définissent le type MIME.
Par exemple pour afficher un message dans un fichier texte .xq, spécifier la méthode de sérialisation "text" et le type "text/plain" :
xquery version "3.0";
declare option exist:serialize "method=text media-type=text/plain";
let $message := 'Hello World!'
return
$message
Résultat : http://www.cems.uwe.ac.uk/xmlwiki/Basics/helloWorld_3.xq.
Résultat attendu
[modifier | modifier le wikicode]Selon le navigateur, cela va proposer de télécharger le fichier, ou l'afficher directement :
Hello World!
Méthodes d'exécution
[modifier | modifier le wikicode]- Dans l'IDE oXygen cela peut être réalisé en sélectionnant l'icône "transform" de la barre d'outils.
- Dans eXist, le fait de copier un fichier via l'OS dans
C:\eXist-db\webapp\WEB-INF\data\fs\db
ne l'ajoutera pas au serveur. Il faut cliquer depuis le tableau de bord du logiciel dans "Collection", puis sur l'icône "Upload resources". Par exemple avec le fichier téléchargé précédemment, une fois importée on peut y accéder via : http://localhost:8080/exist/rest/db/helloWorld_3.xq.- Cette URL est composée de trois éléments importants :
- Il s'agit du chemin par défaut de la configuration eXist.
- Le mot "rest" figurant avant "/db" dénote l'utilisation de l'interface REST (par opposition à WebDAV, Atom ou SOAP). Pour les modifier il faudrait utiliser l'URL rewriting du serveur web.
- Par contre, le port "8080" suivi du contexte "exist" peuvent être changés en éditant le fichier
$EXIST_HOME/tools/jetty/etc/conf.xml
, puis en redémarrant le serveur logiciel. Par exemple en forme courte : http://localhost/rest/db/helloWorld_3.xq.
- Dans BaseX, il faut créer une base, l'ouvrir, puis y ajouter du contenu :
create database test
open test
add /temp/MonDocumentTest.xml
Mais sur Windows, pour éviter les conversions de chemin avec le système de fichier, mieux vaut passer par le menu Database, puis New....